.joe_dropdown {
    position: relative;
    &__link {
        display: flex;
        align-items: center;
        &-icon {
            transition: transform 0.35s;
        }
    }
    &__menu {
        position: absolute;
        left: 50%;
        visibility: hidden;
        z-index: 999;
        border-top: 3px solid var(--theme);
        transform-origin: top;
        background: var(--background);
        box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
        border-radius: 0 0 var(--radius-inner) var(--radius-inner);
        padding: 10px 0;
        opacity: 0;
        transform: translateX(-50%) perspective(600px) rotateX(-45deg);
        transition: opacity 0.35s, visibility 0.35s, transform 0.35s;
        &::before {
            content: '';
            position: absolute;
            top: -10px;
            left: 50%;
            transform: translateX(-50%);
            width: 0;
            height: 0;
            border-left: 7px solid transparent;
            border-right: 7px solid transparent;
            border-bottom: 7px solid var(--theme);
        }
    }
    &.active {
        .joe_dropdown__link-icon {
            transform: rotate(-180deg);
        }
        .joe_dropdown__menu {
            visibility: visible;
            opacity: 1;
            transform: translateX(-50%) perspective(600px) rotateX(0);
        }
    }
}

.joe_header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--background);
    box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.1);
    &__above {
        position: relative;
        z-index: 999;
        background: var(--background);
        .joe_container {
            align-items: center;
        }
        &-logo {
            position: relative;
            display: flex;
            align-items: center;
            height: 60px;
            padding-right: 15px;
            margin-right: 15px;
            img {
                max-width: 150px;
                max-height: 50px;
                object-fit: cover;
            }
            svg {
                display: none;
            }
            &::after {
                content: '';
                position: absolute;
                top: 50%;
                right: 0;
                width: 1px;
                height: 20px;
                background: var(--classC);
                transform: translateY(-50%);
            }
        }
        &-nav {
            display: flex;
            align-items: center;
            .item {
                position: relative;
                height: 60px;
                line-height: 60px;
                font-size: 15px;
                padding: 0 8px;
                margin-right: 15px;
                transition: color 0.35s;
                white-space: nowrap;
                color: var(--main);
                &:last-child {
                    margin-right: 0;
                }
                &::after {
                    content: '';
                    position: absolute;
                    bottom: 0;
                    left: 0;
                    right: 0;
                    height: 3px;
                    transition: opacity 0.5s, transform 0.5s;
                    border-radius: 6px 6px 0 0;
                    opacity: 0;
                    transform: scaleX(0.25);
                    background: var(--theme);
                }
                &.active,
                &:hover {
                    color: var(--theme);
                    &::after {
                        opacity: 1;
                        transform: scaleX(1);
                    }
                }
            }
            .joe_dropdown {
                &__link {
                    a {
                        height: 60px;
                        line-height: 60px;
                        font-size: 15px;
                        padding-left: 8px;
                        padding-right: 3px;
                        transition: color 0.35s;
                        white-space: nowrap;
                        color: var(--main);
                    }
                }
                &__menu {
                    width: 110px;
                    text-align: center;
                    a {
                        display: block;
                        line-height: 34px;
                        height: 34px;
                        transition: color 0.35s, background 0.35s;
                        color: var(--minor);
                        white-space: nowrap;
                        overflow: hidden;
                        text-overflow: ellipsis;
                        padding: 0 15px;
                        &:hover,
                        &.active {
                            color: var(--theme);
                            background: var(--classD);
                        }
                    }
                }
            }
        }
        &-search {
            position: relative;
            margin-left: auto;
            display: flex;
            align-items: center;
            .input {
                background: var(--classC);
                width: 170px;
                height: 34px;
                border: 1px solid transparent;
                padding: 0 18px;
                color: var(--routine);
                transition: background 0.35s, border-color 0.35s, padding-right 0.35s;
                border-radius: 17px 0 0 17px;
                &:focus {
                    background: var(--background);
                    border-color: var(--theme);
                    padding-right: 28px;
                    ~ .icon {
                        transform: translate3d(0, -50%, 0) rotateY(180deg);
                    }
                }
            }
            .submit {
                position: relative;
                z-index: 1;
                height: 34px;
                border: none;
                background: var(--theme);
                color: #fff;
                border-radius: 0 17px 17px 0;
                padding: 0 10px;
            }
            .icon {
                position: absolute;
                top: 50%;
                left: 142px;
                width: 28px;
                height: 38px;
                background: url(https://cdn.jsdelivr.net/gh/HaoOuBa/Joe@master/assets/img/search.png);
                background-size: 100% 100%;
                transition: transform 0.35s;
                transform: translate3d(100%, -50%, 0) rotateY(180deg);
            }
            .result {
                position: absolute;
                z-index: 2;
                top: 60px;
                left: 0;
                right: 0;
                background: var(--background);
                box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
                border-radius: var(--radius-inner);
                visibility: hidden;
                opacity: 0;
                transition: visibility 0.35s, opacity 0.35s, transform 0.35s;
                transform: translate3d(0, 15px, 0);
                &.active {
                    transform: translate3d(0, 0, 0);
                    opacity: 1;
                    visibility: visible;
                }
                .item {
                    height: 40px;
                    line-height: 40px;
                    border-bottom: 1px solid var(--classD);
                    display: flex;
                    align-items: center;
                    overflow: hidden;
                    padding: 0 8px;
                    transition: background 0.35s;
                    &:last-child {
                        border-bottom: none;
                    }
                    &:nth-child(1) .sort {
                        background: #fe2d46;
                    }
                    &:nth-child(2) .sort {
                        background: #f60;
                    }
                    &:nth-child(3) .sort {
                        background: #faa90e;
                    }
                    &:hover {
                        background: var(--classD);
                    }
                    .sort {
                        color: #fff;
                        background: #7f7f8c;
                        width: 18px;
                        height: 18px;
                        line-height: 18px;
                        border-radius: 50%;
                        text-align: center;
                        margin-right: 8px;
                        font-weight: 500;
                    }
                    .text {
                        flex: 1;
                        min-width: 0;
                        white-space: nowrap;
                        overflow: hidden;
                        text-overflow: ellipsis;
                        color: var(--routine);
                        font-size: 12px;
                    }
                    .views {
                        color: var(--seat);
                        font-size: 12px;
                        margin-left: 3px;
                    }
                }
            }
        }
        &-searchicon,
        &-slideicon {
            display: none;
            width: 20px;
            height: 20px;
            fill: var(--routine);
            cursor: pointer;
        }
        &-searchicon {
            margin-left: auto;
        }
    }
    &__below {
        position: relative;
        border-top: 1px solid var(--classC);
        height: 45px;
        &-class {
            display: flex;
            .item {
                margin-right: 15px;
                color: var(--minor);
                height: 45px;
                line-height: 45px;
                transition: color 0.35s;
                white-space: nowrap;
                &:hover,
                &.active {
                    color: var(--theme);
                }
            }
            .joe_dropdown {
                margin-right: 15px;
                &__link {
                    .item {
                        margin-right: 3px;
                    }
                }
                &__menu {
                    width: 110px;
                    text-align: center;
                    a {
                        display: block;
                        height: 34px;
                        line-height: 34px;
                        white-space: nowrap;
                        overflow: hidden;
                        text-overflow: ellipsis;
                        color: var(--minor);
                        transition: color 0.35s, background 0.35s;
                        &:hover,
                        &.active {
                            color: var(--theme);
                            background: var(--classD);
                        }
                    }
                }
            }
        }
        &-progress {
            position: absolute;
            z-index: 1;
            left: 0;
            bottom: -3px;
            height: 3px;
            border-radius: 1.5px;
            background: linear-gradient(to right, #4cd964, #5ac8fa, #007aff);
            transition: width 0.35s;
        }
    }
    &__searchout {
        position: absolute;
        top: 60px;
        left: 0;
        right: 0;
        z-index: 890;
        background: var(--background);
        border-top: 1px solid var(--classC);
        transform: translate3d(0, -100%, 0);
        transition: transform 0.35s, visibility 0.35s;
        visibility: hidden;
        &.active {
            visibility: visible;
            transform: translate3d(0, 0, 0);
        }
        &-inner {
            padding: 15px 0;
            width: 100%;
            .search {
                width: 100%;
                display: flex;
                align-items: center;
                input {
                    flex: 1;
                    height: 36px;
                    padding: 0 10px;
                    border: 1px solid var(--classB);
                    border-right: none;
                    border-radius: 2px 0 0 2px;
                    color: var(--routine);
                    background: var(--classD);
                }
                button {
                    padding: 0 10px;
                    height: 36px;
                    border: none;
                    background: var(--theme);
                    color: #fff;
                    border-radius: 0 2px 2px 0;
                }
            }
            .title {
                color: var(--routine);
                padding: 15px 0 10px;
                font-size: 16px;
                display: flex;
                align-items: center;
                .icon {
                    width: 22px;
                    height: 22px;
                    fill: var(--routine);
                    margin-right: 5px;
                }
            }
            .cloud {
                display: flex;
                flex-wrap: wrap;
                margin: 0 -5px -5px;
                .item {
                    padding: 5px;
                    a {
                        display: block;
                        padding: 0 10px;
                        height: 24px;
                        line-height: 24px;
                        border-radius: 2px;
                        font-size: 12px;
                        color: #fff;
                    }
                }
            }
        }
    }
    &__slideout {
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        width: 80%;
        z-index: 1020;
        background: var(--classD);
        transform: translate3d(-100%, 0, 0);
        visibility: hidden;
        transition: transform 0.35s, visibility 0.35s;
        overflow-y: auto;
        padding: 135px 15px 15px;
        &::-webkit-scrollbar {
            display: none;
        }
        &.active {
            visibility: visible;
            transform: translate3d(0, 0, 0);
        }
        &-image {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 150px;
            object-fit: cover;
            z-index: -1;
        }
        &-author {
            display: flex;
            margin-bottom: 15px;
            background: var(--background);
            border-radius: var(--radius-wrap);
            padding: 15px;
            box-shadow: var(--box-shadow);
            .avatar {
                width: 50px;
                height: 50px;
                margin-right: 10px;
                border-radius: var(--radius-inner);
            }
            .info {
                overflow: hidden;
                line-height: 25px;
                .link,
                .motto {
                    white-space: nowrap;
                    text-overflow: ellipsis;
                    overflow: hidden;
                }
                .link {
                    display: block;
                    font-size: 15px;
                    font-weight: 500;
                    color: var(--main);
                }
                .motto {
                    font-size: 12px;
                    color: var(--routine);
                }
            }
        }
        &-count {
            background: var(--background);
            border-radius: var(--radius-wrap);
            padding: 10px 15px;
            box-shadow: var(--box-shadow);
            margin-bottom: 15px;
            .item {
                display: flex;
                align-items: center;
                color: var(--routine);
                padding: 5px 0;
                .icon {
                    width: 15px;
                    height: 15px;
                    fill: var(--routine);
                    margin-right: 5px;
                }
                strong {
                    font-weight: 500;
                    color: var(--theme);
                }
            }
        }
        &-menu {
            background: var(--background);
            padding: 10px 15px;
            border-radius: var(--radius-wrap);
            overflow: hidden;
            box-shadow: var(--box-shadow);
            .link {
                display: flex;
                align-items: center;
                justify-content: space-between;
                padding: 10px 0;
                color: var(--main);
                transition: color 0.15s;
                a {
                    transition: color 0.15s;
                    color: var(--routine);
                }
                .icon {
                    width: 13px;
                    height: 13px;
                    fill: var(--minor);
                    transition: transform 0.15s, fill 0.15s;
                }
                &.in {
                    color: var(--theme);
                    a {
                        color: var(--theme);
                    }
                    .icon {
                        fill: var(--theme);
                        transform: rotate(90deg);
                    }
                }
            }
            .current {
                a {
                    color: var(--theme);
                    font-weight: 500;
                    font-size: 15px;
                }
            }
            .slides {
                display: none;
                border-left: 1px solid var(--classC);
                padding-left: 15px;
                .link {
                    color: var(--routine);
                }
                .current {
                    color: var(--theme);
                    font-weight: 500;
                    font-size: 15px;
                }
            }
        }
    }
    &__mask {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.65);
        backdrop-filter: blur(5px);
        opacity: 0;
        visibility: hidden;
        transition: visibility 0.35s, opacity 0.35s;
        z-index: 880;
        &.active {
            visibility: visible;
            opacity: 1;
        }
        &.slideout {
            z-index: 1010;
        }
    }
}

.joe_aside {
    padding: 15px 0;
    margin-left: 15px;
    &__item {
        position: relative;
        width: 250px;
        margin-bottom: 15px;
        border-radius: var(--radius-wrap);
        box-shadow: var(--box-shadow);
        overflow: hidden;
        &:last-child {
            position: sticky;
            margin-bottom: 0;
        }
        &-title {
            display: flex;
            align-items: center;
            border-bottom: 1px solid var(--classC);
            font-size: 16px;
            font-weight: 500;
            height: 45px;
            line-height: 45px;
            padding: 0 15px;
            color: var(--main);
            .icon {
                width: 18px;
                height: 18px;
                margin-right: 8px;
                fill: var(--main);
            }
            .line {
                width: 10px;
                height: 1px;
                background: #54b5db;
                margin-left: 12px;
            }
        }
        &-contain {
            position: relative;
            padding: 15px;
        }
        &.author {
            background: var(--background);
            padding: 45px 15px 15px;
            &::before {
                content: '';
                position: absolute;
                top: 90px;
                left: 0;
                width: 100%;
                height: 30px;
                z-index: 2;
                background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--background));
            }
            &::after {
                display: none;
                content: '';
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 273px;
                background: url('https://cdn.jsdelivr.net/gh/HaoOuBa/Joe@master/assets/img/snow.gif') no-repeat;
                background-size: cover;
                z-index: 3;
                pointer-events: none;
            }
            &:hover::after {
                display: block;
            }
            .image {
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 120px;
                object-fit: cover;
                z-index: 1;
            }
            .user {
                position: relative;
                z-index: 4;
                display: flex;
                flex-direction: column;
                align-items: center;
                padding-bottom: 15px;
                .avatar {
                    width: 75px;
                    height: 75px;
                    border-radius: 50%;
                    overflow: hidden;
                    margin-bottom: 10px;
                    object-fit: cover;
                    transition: transform 0.75s;
                    background: var(--background);
                    padding: 5px;
                    &:hover {
                        transform: rotate(360deg);
                    }
                }
                .link {
                    color: var(--theme);
                    margin-bottom: 10px;
                    font-size: 16px;
                    font-weight: 500;
                    &:hover {
                        text-decoration: underline;
                    }
                }
                .motto {
                    color: var(--main);
                    text-align: center;
                    word-break: break-all;
                }
            }
            .count {
                width: 100%;
                padding-bottom: 15px;
                display: flex;
                align-items: center;
                border-bottom: 1px solid var(--classC);
                .item {
                    min-width: 0;
                    flex: 1;
                    display: flex;
                    flex-direction: column;
                    align-items: center;
                    color: var(--routine);
                    font-size: 12px;
                    &:first-child {
                        border-right: 1px solid var(--classC);
                    }
                    .num {
                        max-width: 70px;
                        white-space: nowrap;
                        overflow: hidden;
                        text-overflow: ellipsis;
                        font-weight: 500;
                        font-size: 22px;
                        color: var(--main);
                        margin-bottom: 3px;
                        text-shadow: var(--text_shadow);
                    }
                }
            }
            .list {
                padding-top: 15px;
                .item {
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    line-height: 30px;
                    .link {
                        position: relative;
                        color: var(--routine);
                        max-width: 85%;
                        overflow: hidden;
                        text-overflow: ellipsis;
                        white-space: nowrap;
                        &::after {
                            content: '';
                            position: absolute;
                            bottom: 0;
                            left: 0;
                            width: 0;
                            height: 1px;
                            background: var(--theme);
                            transition: all 0.35s;
                        }
                        &:hover {
                            color: var(--theme);
                            &::after {
                                width: 100%;
                            }
                        }
                    }
                    .icon {
                        fill: var(--routine);
                    }
                }
            }
        }
        &.timelife {
            background: var(--background);
            .item {
                margin-bottom: 15px;
                &:last-child {
                    margin-bottom: 0;
                }
                .title {
                    font-size: 12px;
                    color: var(--minor);
                    margin-bottom: 5px;
                    display: flex;
                    align-items: center;
                    .text {
                        color: var(--theme);
                        font-weight: 500;
                        font-size: 14px;
                        margin: 0 5px;
                    }
                }
                .progress {
                    display: flex;
                    align-items: center;
                    &-bar {
                        height: 10px;
                        border-radius: 5px;
                        overflow: hidden;
                        background: var(--classC);
                        width: 0;
                        min-width: 0;
                        flex: 1;
                        margin-right: 5px;
                        &-inner {
                            width: 0;
                            height: 100%;
                            border-radius: 5px;
                            transition: width 0.35s;
                            animation: progress 750ms linear infinite;
                            &-0 {
                                background: #bde6ff;
                                background-image: linear-gradient(135deg, #50bfff 25%, transparent 25%, transparent 50%, #50bfff 50%, #50bfff 75%, transparent 75%, transparent 100%);
                                background-size: 30px 30px;
                            }
                            &-1 {
                                background: #ffd980;
                                background-image: linear-gradient(135deg, #f7ba2a 25%, transparent 25%, transparent 50%, #f7ba2a 50%, #f7ba2a 75%, transparent 75%, transparent 100%);
                                background-size: 30px 30px;
                            }
                            &-2 {
                                background: #ffa9a9;
                                background-image: linear-gradient(135deg, #ff4949 25%, transparent 25%, transparent 50%, #ff4949 50%, #ff4949 75%, transparent 75%, transparent 100%);
                                background-size: 30px 30px;
                            }
                            &-3 {
                                background: #67c23a;
                                background-image: linear-gradient(135deg, #4f9e28 25%, transparent 25%, transparent 50%, #4f9e28 50%, #4f9e28 75%, transparent 75%, transparent 100%);
                                background-size: 30px 30px;
                            }
                        }
                    }
                    &-percentage {
                        color: var(--minor);
                    }
                }
            }
        }
        &.weather {
            background: var(--background);
            .joe_aside__item-contain {
                min-height: 300px;
            }
        }
        &.hot {
            background: var(--background);
            .empty {
                text-align: center;
                color: var(--routine);
            }
            .item {
                margin-bottom: 15px;
                &:last-child {
                    margin-bottom: 0;
                }
                &:nth-child(1) .link .sort {
                    background: #ff183e;
                }
                &:nth-child(2) .link .sort {
                    background: #ff5c38;
                }
                &:nth-child(3) .link .sort {
                    background: #ffb821;
                }
                .link {
                    position: relative;
                    display: block;
                    border-radius: var(--radius-inner);
                    overflow: hidden;
                    &:hover .image {
                        transform: scale(1.2);
                    }
                    .sort {
                        position: absolute;
                        top: 5px;
                        right: -20px;
                        background: #7f7f8c;
                        color: #fff;
                        width: 65px;
                        text-align: center;
                        font-size: 12px;
                        transform: rotate(45deg);
                        font-weight: 500;
                        z-index: 1;
                        font-style: normal;
                    }
                    .image {
                        width: 100%;
                        height: 130px;
                        object-fit: cover;
                        transition: transform 0.35s;
                    }
                    .describe {
                        position: absolute;
                        z-index: 1;
                        left: 0;
                        right: 0;
                        bottom: 0;
                        padding: 10px;
                        background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75));
                        font-size: 12px;
                        color: var(--seat);
                        h6 {
                            white-space: nowrap;
                            overflow: hidden;
                            text-overflow: ellipsis;
                            color: #fff;
                            line-height: 24px;
                            font-size: 14px;
                        }
                    }
                }
            }
        }
        &.ranking {
            background: var(--background);
            .item {
                display: flex;
                align-items: center;
                line-height: 32px;
                overflow: hidden;
                &:nth-child(1) .sort {
                    color: #fe2d46;
                }
                &:nth-child(2) .sort {
                    color: #f60;
                }
                &:nth-child(3) .sort {
                    color: #faa90e;
                }
                .sort {
                    color: var(--minor);
                    font-weight: 700;
                    font-size: 18px;
                    width: 18px;
                    min-width: 18px;
                    max-width: 18px;
                }
                .link {
                    position: relative;
                    color: var(--routine);
                    white-space: nowrap;
                    overflow: hidden;
                    text-overflow: ellipsis;
                    &::after {
                        position: absolute;
                        content: '';
                        bottom: 0;
                        left: 0;
                        width: 0;
                        height: 1px;
                        background: var(--theme);
                        transition: width 0.5s;
                    }
                    &:hover {
                        color: var(--theme);
                        &::after {
                            width: 100%;
                        }
                    }
                }
            }
            .error {
                text-align: center;
                color: var(--routine);
            }
        }
        &.newreply {
            background: var(--background);
            .empty {
                text-align: center;
                color: var(--routine);
            }
            .item {
                margin-bottom: 15px;
                border-bottom: 1px dashed var(--classC);
                padding-bottom: 15px;
                &:last-child {
                    margin-bottom: 0;
                    border-bottom-color: transparent;
                    padding-bottom: 0;
                }
                .user {
                    display: flex;
                    margin-bottom: 12px;
                    .avatar {
                        width: 40px;
                        height: 40px;
                        min-width: 40px;
                        min-height: 40px;
                        margin-right: 12px;
                        border-radius: 50%;
                        border: 1px solid var(--classA);
                        padding: 3px;
                    }
                    .info {
                        display: flex;
                        flex-direction: column;
                        justify-content: space-between;
                        .author {
                            color: var(--main);
                            font-weight: 600;
                            max-width: 150px;
                            overflow: hidden;
                            text-overflow: ellipsis;
                            white-space: nowrap;
                        }
                        .date {
                            font-size: 12px;
                            color: var(--minor);
                        }
                    }
                }
                .reply {
                    position: relative;
                    background: var(--classD);
                    border-radius: 6px;
                    padding: 5px 10px;
                    &::before {
                        content: '';
                        width: 0;
                        height: 0;
                        border-bottom: 6px solid var(--classD);
                        border-left: 6px solid transparent;
                        border-right: 6px solid transparent;
                        position: absolute;
                        left: 15px;
                        bottom: 100%;
                    }
                    .link {
                        display: -webkit-box;
                        -webkit-line-clamp: 2;
                        /*! autoprefixer: off */
                        -webkit-box-orient: vertical;
                        /* autoprefixer: on */
                        overflow: hidden;
                        text-overflow: ellipsis;
                        word-break: break-all;
                        color: var(--minor);
                        font-size: 13px;
                        font-weight: 500;
                        line-height: 24px;
                        transition: all 0.35s;
                        max-height: 48px;
                        &:hover {
                            color: var(--theme);
                        }
                        .owo_image {
                            height: 18px;
                            vertical-align: -5px;
                        }
                    }
                }
            }
        }
    }
}

.joe_list {
    &__item {
        position: relative;
        width: 100%;
        border-bottom: 1px solid var(--classC);
        padding: 15px 0;
        &:last-child {
            border-bottom: none;
        }
        .information {
            .title {
                margin-bottom: 10px;
                display: -webkit-box;
                -webkit-line-clamp: 2;
                /*! autoprefixer: off */
                -webkit-box-orient: vertical;
                /* autoprefixer: on */
                overflow: hidden;
                text-overflow: ellipsis;
                word-break: break-all;
                color: var(--main);
                font-size: 18px;
                line-height: 24px;
                max-height: 48px;
                transition: color 0.35s;
                &:hover {
                    color: var(--theme);
                }
                .badge {
                    height: 20px;
                    line-height: 20px;
                    background-image: -webkit-linear-gradient(0deg, #3ca5f6 0%, #a86af9 100%);
                    color: #fff;
                    font-size: 12px;
                    margin-right: 5px;
                    border-radius: 2px;
                    padding: 0 8px;
                    white-space: nowrap;
                    vertical-align: 2px;
                }
            }
            .abstract {
                display: -webkit-box;
                -webkit-line-clamp: 2;
                /*! autoprefixer: off */
                -webkit-box-orient: vertical;
                /* autoprefixer: on */
                overflow: hidden;
                text-overflow: ellipsis;
                color: var(--minor);
                word-break: break-all;
                line-height: 22px;
                max-height: 44px;
                opacity: 0.85;
            }
        }
        .line {
            position: absolute;
            z-index: 1;
            top: 15px;
            left: -15px;
            width: 4px;
            height: 25px;
            border-radius: 2px;
            background: var(--theme);
            transform: scaleY(0);
            transition: transform 0.35s;
        }
        .meta {
            display: flex;
            align-items: center;
            margin-top: auto;
            color: var(--minor);
            font-size: 13px;
            .items {
                display: flex;
                align-items: center;
                li {
                    &::after {
                        content: '/';
                        color: var(--seat);
                        padding: 0 5px;
                    }
                    &:last-child::after {
                        display: none;
                    }
                }
            }
            .last {
                margin-left: auto;
                display: flex;
                align-items: center;
                .icon {
                    margin-right: 3px;
                }
                .link {
                    color: var(--minor);
                    &:hover {
                        color: var(--theme);
                    }
                }
            }
        }
        &:hover .line {
            transform: scaleY(1);
        }
        &.default {
            display: flex;
            position: relative;
            &:hover {
                .thumbnail {
                    img {
                        opacity: 0.8;
                    }
                    time {
                        transform: translate3d(0, 0, 0);
                    }
                }
            }
            .thumbnail {
                position: relative;
                width: 210px;
                height: 140px;
                min-width: 210px;
                min-height: 140px;
                margin-right: 15px;
                overflow: hidden;
                img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                    border-radius: var(--radius-inner);
                    transition: opacity 0.35s;
                }
                time {
                    position: absolute;
                    z-index: 1;
                    top: 5px;
                    right: 5px;
                    background: var(--theme);
                    height: 20px;
                    line-height: 20px;
                    padding: 0 8px;
                    color: #fff;
                    font-size: 12px;
                    border-radius: 10px;
                    transition: transform 0.35s;
                    transform: translate3d(120%, 0, 0);
                }
                svg {
                    position: absolute;
                    z-index: 1;
                    top: 5px;
                    left: 5px;
                    width: 20px;
                    height: 20px;
                    fill: #fff;
                }
            }
            .information {
                display: flex;
                flex-direction: column;
                flex: 1;
                min-width: 0;
            }
        }
        &.single {
            &:hover {
                .thumbnail {
                    img {
                        opacity: 0.8;
                    }
                    time {
                        transform: translate3d(0, 0, 0);
                    }
                }
            }
            .information {
                margin-bottom: 15px;
            }
            .thumbnail {
                display: block;
                position: relative;
                width: 100%;
                height: 280px;
                overflow: hidden;
                margin-bottom: 15px;
                img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                    border-radius: var(--radius-inner);
                    transition: opacity 0.35s;
                }
                time {
                    position: absolute;
                    z-index: 1;
                    top: 10px;
                    right: 10px;
                    background: var(--theme);
                    height: 20px;
                    line-height: 20px;
                    padding: 0 8px;
                    color: #fff;
                    font-size: 12px;
                    border-radius: 10px;
                    transition: transform 0.35s;
                    transform: translate3d(120%, 0, 0);
                }
                svg {
                    position: absolute;
                    z-index: 1;
                    top: 10px;
                    left: 10px;
                    width: 20px;
                    height: 20px;
                    fill: #fff;
                }
            }
        }
        &.multiple {
            .information {
                margin-bottom: 15px;
            }
            .thumbnail {
                display: grid;
                grid-template-columns: repeat(3, 1fr);
                grid-template-rows: 180px;
                gap: 15px;
                margin-bottom: 15px;
                img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                    transition: transform 0.35s, opacity 0.35s;
                    border-radius: var(--radius-inner);
                    &:hover {
                        transform: scale(1.025);
                        opacity: 0.85;
                    }
                }
            }
        }
        &.none {
            .information {
                display: flex;
                flex-direction: column;
                height: 140px;
            }
        }
    }
    &__loading {
        .item {
            display: flex;
            position: relative;
            width: 100%;
            padding: 15px 0;
            border-bottom: 1px solid var(--classC);
            &:last-child {
                border-bottom: none;
            }
            .thumbnail {
                position: relative;
                width: 210px;
                height: 140px;
                min-width: 210px;
                min-height: 140px;
                margin-right: 15px;
                background: var(--classD);
                animation: list_thumbnail_loading 0.5s infinite alternate;
                border-radius: var(--radius-inner);
            }
            .information {
                flex: 1;
                min-width: 0;
                .title {
                    height: 24px;
                    border-radius: var(--radius-inner);
                    background: var(--classD);
                    animation: list_title_loading 0.75s infinite alternate;
                    margin-bottom: 15px;
                }
                .abstract {
                    p {
                        height: 18px;
                        border-radius: var(--radius-inner);
                        background: var(--classD);
                        margin-bottom: 5px;
                        animation: list_abstract_loading 0.8s infinite alternate;
                    }
                }
            }
        }
    }
}

.joe_load {
    margin: 15px auto 0;
    width: 120px;
    height: 32px;
    line-height: 32px;
    text-align: center;
    border-radius: 16px;
    cursor: pointer;
    user-select: none;
    background: var(--background);
    color: var(--routine);
    transition: transform 0.25s;
    box-shadow: var(--box-shadow);
    &:active {
        transform: scale(0.75);
    }
}

.joe_detail {
    background: var(--background);
    border-radius: var(--radius-wrap);
    padding: 15px;
    box-shadow: var(--box-shadow);
    margin-bottom: 15px;
    &__category {
        display: flex;
        align-items: center;
        margin-bottom: 15px;
        .item {
            color: #fff;
            font-size: 12px;
            padding: 3px 8px;
            margin-right: 5px;
            border-radius: 2px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            max-width: 120px;
            transition: transform 0.35s, opacity 0.35s;
            &:hover {
                opacity: 0.85;
                transform: translate3d(0, -3px, 0);
            }
            &:last-child {
                margin-right: 0;
            }
            &-0 {
                background: #0396ff;
            }
            &-1 {
                background: #ea5455;
            }
            &-2 {
                background: #7367f0;
            }
            &-3 {
                background: #28c76f;
            }
            &-4 {
                background: #9f44d3;
            }
        }
        .edit {
            color: var(--minor);
            margin-left: auto;
            &:hover {
                color: var(--theme);
            }
        }
    }
    &__title {
        font-size: 24px;
        color: var(--main);
        text-shadow: var(--text-shadow);
        text-align: center;
        margin-bottom: 15px;
        word-break: break-all;
    }
    &__count {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding-bottom: 15px;
        border-bottom: 1px solid var(--classC);
        &::after {
            content: '';
            position: absolute;
            bottom: -1.5px;
            left: 0;
            width: 80px;
            height: 3px;
            border-radius: 1.5px;
            background: var(--theme);
        }
        &-information {
            display: flex;
            align-items: center;
            .avatar {
                width: 35px;
                height: 35px;
                border-radius: 50%;
                margin-right: 10px;
                border: 1px solid var(--classA);
                padding: 3px;
                object-fit: cover;
            }
            .meta {
                display: flex;
                flex-direction: column;
                height: 35px;
                justify-content: space-between;
                font-size: 12px;
                .author {
                    .link {
                        font-weight: 500;
                        color: var(--theme);
                        &:hover {
                            text-decoration: underline;
                        }
                    }
                }
                .item {
                    display: flex;
                    align-items: center;
                    color: var(--minor);
                    line-height: 16px;
                    .line {
                        color: var(--seat);
                        margin: 0 7px;
                        vertical-align: middle;
                    }
                }
            }
        }
        &-created {
            font-size: 32px;
            line-height: 42px;
            color: var(--routine);
            user-select: none;
            text-shadow: var(--text-shadow);
            font-family: consolas;
        }
    }
    &__article {
        padding-top: 15px;
        font-size: 15px;
        word-break: break-all;
        color: var(--routine);
        h1,
        h2,
        h3,
        h4,
        h5,
        h6 {
            color: var(--main);
            font-size: 18px;
            line-height: 24px;
            margin-bottom: 15px;
            position: relative;
        }
        h1 {
            padding: 0 15px;
            &::before {
                content: '';
                position: absolute;
                top: 8.5px;
                left: 0;
                height: 7px;
                width: 7px;
                border-radius: 50%;
                background: var(--theme);
            }
        }
        h2 {
            padding: 0 15px;
            &::before {
                content: '';
                position: absolute;
                top: 10%;
                bottom: 10%;
                left: 0;
                width: 4px;
                border-radius: 2px;
                background: var(--theme);
            }
        }
        h3 {
            padding: 0 15px 0 20px;
            &::before {
                content: '#';
                color: var(--theme);
                font-weight: 700;
                position: absolute;
                top: 0;
                left: 0;
                line-height: 24px;
            }
        }
        h4 {
            &::before {
                content: '「';
                color: var(--theme);
                font-weight: 600;
                margin-right: 5px;
            }
            &::after {
                content: '」';
                color: var(--theme);
                font-weight: 600;
                margin-left: 5px;
            }
        }
        h5 {
            padding: 0 15px 0 28px;
            &::before {
                content: '';
                position: absolute;
                top: 2px;
                left: 0;
                width: 20px;
                height: 20px;
                background-image: url('');
                background-size: 100% 100%;
            }
        }
        h6 {
            padding: 0 15px 0 28px;
            &::before {
                content: '';
                position: absolute;
                top: 2px;
                left: 0;
                width: 20px;
                height: 20px;
                background-image: url('');
                background-size: 100% 100%;
            }
        }
        hr {
            border: none;
            height: 1px;
            background-color: var(--classB);
            margin-bottom: 15px;
        }
        p {
            line-height: 26px;
            margin-bottom: 15px;
        }
        blockquote {
            line-height: 26px;
            margin-bottom: 15px;
            background: #ecf8ff;
            border-left: 5px solid #50bfff;
            color: #50bfff;
            padding: 8px 15px;
            border-radius: 0 var(--radius-inner) var(--radius-inner) 0;
            p {
                margin: 0;
            }
        }
        a:not(.joe_detail__article-anote):not(.joe_detail__article-abtn) {
            display: inline-block;
            line-height: 26px;
            color: var(--theme);
            position: relative;
            &:hover::after {
                opacity: 1;
                transform: scaleX(1);
            }
            &::after {
                content: '';
                position: absolute;
                width: 100%;
                height: 1px;
                bottom: -1px;
                left: 0;
                background: var(--theme);
                transform: scaleX(0.25);
                opacity: 0;
                transition: transform 0.35s, opacity 0.35s;
            }
        }
        code {
            display: inline-block;
            min-height: 26px;
            line-height: 26px;
            border-radius: var(--radius-inner);
            font-size: 12px;
            background: #fdf6ec;
            padding: 0 8px;
            color: #e6a23c;
            vertical-align: top;
        }
        pre code {
            display: unset;
            vertical-align: unset;
            min-height: unset;
            line-height: unset;
            border-radius: unset;
            font-size: unset;
            background: unset;
            padding: unset;
            color: unset;
        }
        pre[class*='language-'] {
            position: relative;
            margin: 0 0 15px;
            padding: 30px 0 0;
            border-radius: var(--radius-inner);
            font-size: 14px;
            overflow: hidden !important;
            code[class*='language-'] {
                display: block;
                max-width: 100%;
                overflow: auto;
                padding: 0 15px 12px;
                border-radius: var(--radius-inner);
            }
            &::after {
                content: '';
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 30px;
                background: #2d2d2d;
                border-radius: var(--radius-inner) var(--radius-inner) 0 0;
            }
            &::before {
                content: '';
                position: absolute;
                top: 9px;
                left: 15px;
                width: 12px;
                height: 12px;
                border-radius: 50%;
                background: #fc625d;
                box-shadow: 20px 0 #fdbc40, 40px 0 #35cd4b;
                z-index: 1;
            }
            .copy {
                position: absolute;
                top: 9px;
                right: 15px;
                z-index: 5;
                color: #909399;
                transition: color 0.35s;
                cursor: pointer;
                user-select: none;
                &:hover {
                    color: #c0c4cc;
                }
            }
        }
        img:not(.owo_image) {
            display: block;
            max-width: 100%;
            border-radius: var(--radius-inner);
            transition: transform 0.35s, box-shadow 0.35s;
            cursor: zoom-in;
            margin: 0 auto;
            &:hover {
                transform: translateY(-5px);
                box-shadow: 0 34px 20px -24px rgba(136, 161, 206, 0.3);
            }
        }
        .owo_image {
            max-height: 26px;
            vertical-align: top;
        }
        ol,
        ul {
            margin-bottom: 15px;
            padding: 0 30px;
            li {
                line-height: 26px;
            }
        }
        ol li {
            list-style: decimal;
        }
        ul li {
            list-style: disc;
        }
        table {
            width: 100%;
            max-width: 100%;
            table-layout: fixed;
            color: var(--minor);
            margin-bottom: 15px;
            font-size: 13px;
            border-top: 1px solid var(--classC);
            border-left: 1px solid var(--classC);
            td,
            th {
                padding: 8px;
                border-bottom: 1px solid var(--classC);
                border-right: 1px solid var(--classC);
            }
            thead {
                th {
                    font-weight: 500;
                    background: var(--classC);
                }
            }
            tbody {
                tr {
                    transition: background 0.35s;
                    &:hover {
                        background: var(--classD);
                    }
                }
            }
        }
        span.block {
            display: block;
        }
        &-hide {
            background: repeating-linear-gradient(145deg, var(--classD), var(--classD) 15px, var(--background) 0, var(--background) 25px);
            padding: 15px 0;
            text-align: center;
            position: relative;
            user-select: none;
            line-height: normal;
            i {
                position: relative;
                font-style: normal;
                cursor: pointer;
                color: var(--theme);
            }
        }
        &-player {
            width: 100%;
            height: 500px;
        }
        &-protected {
            display: flex;
            justify-content: center;
            background: repeating-linear-gradient(145deg, var(--classB), var(--classB) 15px, var(--background) 0, var(--background) 30px);
            padding: 20px 0;
            margin-bottom: 15px;
            .contain {
                position: relative;
                box-shadow: var(--box-shadow);
                border-radius: 20px;
                overflow: hidden;
                .icon {
                    position: absolute;
                    top: 50%;
                    transform: translateY(-50%);
                    left: 15px;
                }
                .password {
                    width: 250px;
                    height: 40px;
                    border: none;
                    color: var(--routine);
                    padding-left: 50px;
                    background: var(--background);
                }
                .submit {
                    position: absolute;
                    top: 50%;
                    right: 15px;
                    transform: translateY(-50%);
                    color: var(--main);
                    border: none;
                    background: none;
                }
            }
        }
        &-checkbox {
            -webkit-appearance: none;
            position: relative;
            border-radius: 2px;
            width: 15px;
            height: 15px;
            border: 2px solid var(--theme);
            vertical-align: -2px;
            &:disabled {
                cursor: not-allowed;
            }
            &:checked {
                border: none;
                background: var(--theme);
                &::after {
                    content: '';
                    width: 3px;
                    height: 7px;
                    position: absolute;
                    top: 2px;
                    left: 5px;
                    border: 2px solid #fff;
                    border-top: 0;
                    border-left: 0;
                    transform: rotate(45deg);
                }
            }
        }
        &-card {
            margin: 0 auto;
            box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
            border-radius: var(--radius-inner);
            border: 1px solid var(--classC);
            background: var(--background);
            .title {
                padding: 8px 10px;
                border-bottom: 1px solid var(--classC);
                color: var(--main);
                user-select: none;
            }
            .content {
                padding: 10px;
                color: var(--routine);
            }
        }
        &-message {
            position: relative;
            border-left-width: 4px;
            border-left-style: solid;
            padding: 8px 15px;
            border-radius: 0 4px 4px 0;
            &:hover {
                .icon {
                    transform: rotate(360deg);
                }
            }
            .icon {
                position: absolute;
                top: -9px;
                left: -11px;
                width: 18px;
                height: 18px;
                border-radius: 50%;
                transition: transform 0.85s;
                &::before {
                    content: '';
                    position: absolute;
                    top: 50%;
                    left: 50%;
                    transform: translate(-50%, -50%);
                    width: 10px;
                    height: 10px;
                    fill: #fff;
                    background-repeat: no-repeat;
                    background-size: 100% 100%;
                }
            }
            &.success {
                border-left-color: #2bde3f;
                background: #2bde3f20;
                color: #2bde3f;
                .icon {
                    background: #2bde3f;
                    &::before {
                        background-image: url();
                    }
                }
            }
            &.info {
                border-left-color: #1d72f3;
                background: #1d72f320;
                color: #1d72f3;
                .icon {
                    background: #1d72f3;
                    &::before {
                        background-image: url();
                    }
                }
            }
            &.warning {
                border-left-color: #ffc007;
                background: #ffc00720;
                color: #ffc007;
                .icon {
                    background: #ffc007;
                    &::before {
                        background-image: url();
                    }
                }
            }
            &.error {
                border-left-color: #f56c6c;
                background: #f56c6c20;
                color: #f56c6c;
                .icon {
                    background: #f56c6c;
                    &::before {
                        background-image: url();
                    }
                }
            }
        }
        &-mtitle {
            display: flex;
            justify-content: center;
            .text {
                position: relative;
                color: var(--minor);
                padding: 0 15px;
                transition: padding 0.35s;
                &:hover {
                    padding: 0;
                }
                &::before,
                &::after {
                    content: '';
                    position: absolute;
                    top: 50%;
                    width: 20px;
                    height: 1px;
                    background: var(--theme);
                }
                &::before {
                    left: -35px;
                }
                &::after {
                    right: -35px;
                }
            }
        }
        &-anote {
            position: relative;
            display: inline-block;
            color: #fff;
            height: 35px;
            line-height: 35px;
            transform: translateZ(0);
            transition: transform 0.35s;
            &:hover {
                transform: translateY(-3px);
            }
            .icon {
                display: inline-block;
                vertical-align: top;
                width: 35px;
                height: 35px;
                text-align: center;
                background: rgba(0, 0, 0, 0.2);
                .fa {
                    color: #fff;
                }
            }
            .content {
                display: inline-block;
                vertical-align: top;
                padding: 0 12px;
                max-width: 200px;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }
            &.secondary {
                background: #34495e;
            }
            &.success {
                background: #27ae60;
            }
            &.warning {
                background: #f39c12;
            }
            &.error {
                background: #e74c3c;
            }
            &.info {
                background: #3498db;
            }
        }
        &-abtn {
            display: inline-block;
            color: #fff;
            height: 35px;
            line-height: 35px;
            padding: 0 15px;
            transform-origin: 100% 0;
            transform: translateZ(0);
            &:hover {
                animation-name: wobble-bottom;
                animation-duration: 1s;
                animation-timing-function: ease-in-out;
                animation-iteration-count: 1;
            }
            .icon {
                display: inline-block;
                vertical-align: top;
                text-align: center;
                .fa {
                    color: #fff;
                }
                [class^='fa-'] {
                    margin-right: 8px;
                }
            }
            .content {
                display: inline-block;
                vertical-align: top;
                max-width: 200px;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }
        }
        &-copy {
            cursor: pointer;
            user-select: none;
        }
        &-video {
            margin-bottom: 15px;
            .play,
            .episodes {
                position: relative;
                background: var(--classD);
                padding: 60px 15px 15px;
                .title {
                    position: absolute;
                    top: 15px;
                    left: -10px;
                    background: var(--theme);
                    color: #fff;
                    font-weight: 500;
                    box-shadow: 2px 5px 10px rgba(49, 58, 70, 0.15);
                    height: 30px;
                    line-height: 30px;
                    padding: 0 12px;
                    border-radius: 2px 2px 2px 0;
                    user-select: none;
                    &::after {
                        content: '';
                        position: absolute;
                        bottom: -10px;
                        left: -10px;
                        border-style: solid;
                        border-width: 10px;
                        border-color: var(--theme) transparent transparent;
                        transform: rotate(90deg);
                    }
                }
                .box {
                    border-top: 1px solid var(--classB);
                    padding-top: 15px;
                }
            }
            .play {
                margin-bottom: 15px;
                .box {
                    iframe {
                        background: #000;
                        width: 100%;
                        height: 520px;
                    }
                }
            }
            .episodes {
                .box {
                    display: grid;
                    grid-template-columns: repeat(6, 1fr);
                    gap: 15px;
                    .item {
                        height: 30px;
                        line-height: 30px;
                        border-radius: 15px;
                        background: var(--background);
                        color: var(--routine);
                        cursor: pointer;
                        text-align: center;
                        font-size: 12px;
                        white-space: nowrap;
                        overflow: hidden;
                        text-overflow: ellipsis;
                        transition: transform 0.35s, box-shadow 0.35s, background 0.35s, color 0.35s;
                        padding: 0 10px;
                        &.active {
                            transform: translateY(-2px);
                            color: #fff;
                            background: var(--theme);
                            box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1);
                        }
                        &:hover {
                            transform: translateY(-2px);
                            box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1);
                        }
                    }
                }
            }
        }
    }
    &__agree {
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 15px;
        .agree {
            text-align: center;
            font-size: 12px;
            color: var(--minor);
            user-select: none;
            .icon {
                position: relative;
                display: flex;
                align-items: center;
                justify-content: center;
                width: 42px;
                height: 42px;
                border-radius: 50%;
                background: #f56c6c;
                cursor: pointer;
                margin-bottom: 8px;
                &.active {
                    animation: box_shadow 1s;
                    box-shadow: 0 0 0 20px rgba(255, 255, 255, 0);
                }
                svg {
                    position: absolute;
                    width: 28px;
                    height: 28px;
                    transform: scale(0);
                    opacity: 0;
                    transition: transform 0.85s, opacity 0.85s;
                    &.active {
                        transform: scale(1);
                        opacity: 1;
                    }
                }
            }
        }
    }
    &__copyright {
        padding-top: 15px;
        border-top: 1px solid var(--classC);
        .content {
            background: var(--classD);
            padding: 15px;
            border-radius: var(--radius-inner);
            .item {
                display: flex;
                align-items: center;
                color: var(--minor);
                white-space: nowrap;
                margin-bottom: 10px;
                &:last-child {
                    margin-bottom: 0;
                }
                .icon {
                    width: 20px;
                    height: 20px;
                    min-width: 20px;
                    min-height: 20px;
                    margin-right: 5px;
                }
                .link {
                    color: var(--minor);
                    &:hover {
                        color: var(--theme);
                    }
                }
                .text {
                    white-space: nowrap;
                    overflow: hidden;
                    text-overflow: ellipsis;
                }
            }
        }
    }
    &__friends {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 15px;
        margin-bottom: 15px;
        &-item {
            .contain {
                display: block;
                border-radius: var(--radius-inner);
                overflow: hidden;
                padding: 15px;
                color: #fff;
                word-break: break-all;
                transition: transform 0.35s, box-shadow 0.35s;
                &:hover {
                    transform: translateY(-5px) scale(1.025);
                    box-shadow: 0 34px 20px -24px rgba(136, 161, 206, 0.3);
                }
                .title {
                    position: relative;
                    &::after {
                        content: '';
                        position: absolute;
                        bottom: -5px;
                        left: 0;
                        width: 100%;
                        height: 1px;
                        background: #fff;
                    }
                }
                .content {
                    display: flex;
                    justify-content: space-between;
                    align-items: center;
                    margin-top: 15px;
                    .desc {
                        margin-right: 10px;
                    }
                    .avatar {
                        width: 40px;
                        height: 40px;
                        min-width: 40px;
                        min-height: 40px;
                        border-radius: 50%;
                        object-fit: cover;
                    }
                }
            }
        }
    }
}

.joe_footer {
    border-top: 1px solid var(--classB);
    color: var(--minor);
    .joe_container {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 65px;
        .run {
            margin: 0 auto 0 10px;
        }
        a {
            color: var(--minor);
            transition: all 0.35s;
            &:hover {
                color: var(--theme);
            }
        }
    }
}

.joe_pagination {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-top: 15px;
    li {
        margin-left: 5px;
        &.active a {
            background: var(--theme);
            color: #fff;
            font-weight: 500;
        }
        a {
            display: flex;
            align-items: center;
            height: 32px;
            color: var(--main);
            padding: 0 15px;
            background: var(--background);
            border-radius: 2px;
            transition: background 0.35s, color 0.35s;
            user-select: none;
            &:hover {
                background: var(--theme);
                color: #fff;
                .icon {
                    fill: #fff;
                }
            }
            .icon {
                width: 12px;
                height: 12px;
                fill: var(--routine);
                transition: fill 0.35s;
                &-next {
                    transform: rotate(180deg);
                }
            }
        }
    }
}

.joe_action {
    position: fixed;
    bottom: 90px;
    right: 30px;
    z-index: 333;
    &_item {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        background: var(--background);
        border-radius: 50%;
        cursor: pointer;
        margin-top: 15px;
        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1), 0 5px 20px rgba(0, 0, 0, 0.2);
        svg {
            position: absolute;
            width: 25px;
            height: 25px;
            fill: var(--theme);
        }
        &.scroll {
            visibility: hidden;
            transform: scale(0);
            transition: visibility 0.35s, transform 0.35s;
            &.active {
                visibility: visible;
                transform: scale(1);
            }
        }
        &.mode {
            svg {
                transform: scale(0);
                opacity: 0;
                transition: transform 0.85s, opacity 0.85s;
                &.active {
                    transform: scale(1);
                    opacity: 1;
                }
            }
        }
    }
}

.joe_comment {
    background: var(--background);
    border-radius: var(--radius-wrap);
    box-shadow: var(--box-shadow);
    padding: 15px;
    &__title {
        font-weight: 500;
        text-align: center;
        font-size: 24px;
        color: var(--main);
        text-shadow: var(--text-shadow);
        border-bottom: 1px solid var(--classC);
        margin-bottom: 15px;
        padding-bottom: 15px;
    }
    &__close {
        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--routine);
        &-icon {
            fill: var(--routine);
            margin-right: 5px;
        }
    }
    &__respond {
        &-type {
            display: flex;
            align-items: center;
            justify-content: flex-end;
            .item {
                background: var(--classD);
                padding: 0 15px;
                height: 32px;
                color: var(--main);
                border: none;
                transition: color 0.35s, background 0.35s;
                &:first-child {
                    border-top-left-radius: var(--radius-inner);
                }
                &:last-child {
                    border-top-right-radius: var(--radius-inner);
                }
                &.active {
                    color: #fff;
                    background: var(--theme);
                }
            }
        }
        &-form {
            border-radius: 6px 0 6px 6px;
            background: var(--classD);
            .head {
                display: flex;
                align-items: center;
                border-bottom: 1px solid var(--classA);
                .list {
                    flex: 1;
                    input {
                        width: 100%;
                        border: none;
                        background: transparent;
                        padding: 0 15px;
                        height: 40px;
                        color: var(--routine);
                    }
                    &:nth-child(2) {
                        position: relative;
                        &::after,
                        &::before {
                            content: '';
                            position: absolute;
                            top: 50%;
                            transform: translateY(-50%);
                            width: 1px;
                            height: 15px;
                            background: var(--classA);
                        }
                        &::before {
                            left: 0;
                        }
                        &::after {
                            right: 0;
                        }
                    }
                }
            }
            .body {
                padding: 15px;
                .text {
                    width: 100%;
                    height: 200px;
                    border: none;
                    resize: none;
                    vertical-align: middle;
                    color: var(--routine);
                    background: transparent;
                }
                .draw {
                    position: relative;
                    width: 100%;
                    .line {
                        display: flex;
                        align-items: center;
                        position: absolute;
                        top: 10px;
                        left: 10px;
                        user-select: none;
                        li {
                            cursor: pointer;
                            margin-right: 10px;
                            color: var(--main);
                            transition: color 0.35s;
                            &.active {
                                color: var(--theme);
                            }
                        }
                    }
                    .color {
                        display: flex;
                        align-items: center;
                        position: absolute;
                        bottom: 10px;
                        left: 10px;
                        li {
                            width: 20px;
                            height: 20px;
                            border-radius: 50%;
                            margin: 0 5px;
                            cursor: pointer;
                            transition: box-shadow 0.35s;
                            &.active {
                                box-shadow: 0 4px 10px rgba(0, 0, 0, 0.35);
                            }
                            &:nth-child(1) {
                                background: #303133;
                            }
                            &:nth-child(2) {
                                background: #67c23a;
                            }
                            &:nth-child(3) {
                                background: #e6a23c;
                            }
                            &:nth-child(4) {
                                background: #f56c6c;
                            }
                        }
                    }
                    .icon {
                        position: absolute;
                        right: 10px;
                        cursor: pointer;
                        fill: var(--minor);
                        user-select: none;
                        &-undo {
                            top: 10px;
                        }
                        &-animate {
                            bottom: 10px;
                        }
                    }
                    canvas {
                        background: var(--background);
                        border-radius: var(--radius-inner);
                    }
                }
            }
            .foot {
                position: relative;
                display: flex;
                align-items: center;
                justify-content: space-between;
                padding: 0 15px 15px;
                .owo {
                    min-height: 32px;
                    padding-top: 3px;
                    .seat {
                        text-align: center;
                        color: var(--routine);
                        height: 26px;
                        line-height: 26px;
                        background: var(--background);
                        opacity: 0.85;
                        border-radius: 13px;
                        width: 70px;
                    }
                }
                .submit {
                    position: absolute;
                    top: 0;
                    right: 15px;
                    white-space: nowrap;
                    .cancle {
                        display: none;
                        color: var(--main);
                        cursor: pointer;
                        margin-right: 10px;
                        transition: color 0.35s;
                        &:hover {
                            color: var(--theme);
                        }
                    }
                    button {
                        border-radius: 3px;
                        height: 32px;
                        padding: 0 15px;
                        border: none;
                        background: var(--theme);
                        color: #fff;
                        font-size: 14px;
                        &:hover {
                            animation: 5s ease-in-out 0s infinite normal none running shaked;
                        }
                    }
                }
            }
        }
    }
    .comment-list {
        padding-top: 15px;
        &__item {
            &-contain {
                .term {
                    display: flex;
                    margin-bottom: 15px;
                    .avatar {
                        width: 48px;
                        height: 48px;
                        border-radius: 50%;
                        margin-right: 15px;
                        padding: 3px;
                        border: 1px solid var(--classD);
                        object-fit: cover;
                    }
                    .content {
                        min-width: 0;
                        flex: 1;
                        border-bottom: 1px solid var(--classC);
                        padding-bottom: 15px;
                        .user {
                            display: flex;
                            align-items: center;
                            margin-bottom: 8px;
                            line-height: 20px;
                            color: var(--main);
                            .author {
                                margin-right: 10px;
                                a {
                                    color: #409eff;
                                }
                            }
                            .owner {
                                background: var(--theme);
                                color: #fff;
                                padding: 0 5px;
                                border-radius: 2px;
                                font-style: normal;
                            }
                            .agent {
                                margin-left: auto;
                                font-size: 12px;
                                color: var(--minor);
                            }
                            .waiting {
                                color: #e6a23c;
                                font-style: normal;
                            }
                        }
                        .substance {
                            width: 100%;
                            background: var(--classD);
                            padding: 12px 15px;
                            border-radius: 0 var(--radius-inner) var(--radius-inner) 10px;
                            color: var(--main);
                            margin-bottom: 8px;
                            word-break: break-all;
                            line-height: 24px;
                            .parent {
                                color: #388bff;
                                margin-bottom: 5px;
                                user-select: none;
                                font-weight: 500;
                            }
                            .owo_image {
                                height: 22px;
                            }
                            .draw_image {
                                max-width: 100%;
                            }
                        }
                        .handle {
                            display: flex;
                            align-items: center;
                            color: var(--minor);
                            .date {
                                margin-right: 10px;
                            }
                            .reply {
                                display: flex;
                                align-items: center;
                                color: var(--main);
                                font-size: 13px;
                                cursor: pointer;
                                transition: color 0.35s;
                                .icon {
                                    margin-right: 5px;
                                }
                                &:hover {
                                    color: var(--theme);
                                    .icon {
                                        fill: var(--theme);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            &-children {
                padding-left: 63px;
                .comment-list__item-children {
                    padding-left: 0;
                }
            }
            .joe_comment__respond {
                margin-left: 63px;
                margin-bottom: 15px;
                animation: showComment 0.5s;
            }
        }
        .comment-list {
            padding-top: 0;
        }
    }
    .joe_pagination {
        padding-top: 0;
    }
}

.joe_run {
    &__day,
    &__hour,
    &__minute,
    &__second {
        font-weight: 500;
        color: var(--theme);
    }
}

.joe_owo {
    &__contain {
        position: relative;
        .seat {
            user-select: none;
            cursor: pointer;
        }
        .box {
            width: 100%;
            display: none;
            background: var(--background);
            border-radius: var(--radius-inner);
            overflow: hidden;
            margin-top: 15px;
            .scroll {
                display: none;
                max-height: 200px;
                overflow-y: auto;
                overscroll-behavior: none;
                padding: 5px;
                .item {
                    text-align: center;
                    width: calc(100% / 18);
                    display: inline-block;
                    padding: 5px;
                    cursor: pointer;
                    border-radius: var(--radius-inner);
                    transition: background 0.25s;
                    img {
                        max-width: 100%;
                        max-height: 100%;
                    }
                    &:hover {
                        background: var(--classD);
                    }
                }
                &:nth-child(3) {
                    .item {
                        color: var(--routine);
                        width: calc(100% / 5);
                    }
                }
            }
            .bar {
                display: flex;
                align-items: center;
                border-top: 1px solid var(--classC);
                .item {
                    line-height: 30px;
                    padding: 0 10px;
                    cursor: pointer;
                    color: var(--routine);
                    transition: background 0.25s, color 0.25s;
                    &.active {
                        color: #fff;
                        background: var(--theme);
                    }
                }
            }
        }
    }
}

.profile-color-modes-illu-frame {
    opacity: 0;
}
.profile-color-modes-illu-red {
    stroke: #da3633;
}
.profile-color-modes-illu-orange {
    stroke: #f0883e;
}
.profile-color-modes-illu-purple {
    stroke: #8957e5;
}
.profile-color-modes-illu-green {
    stroke: #3fb950;
}
.profile-color-modes-illu-blue {
    stroke: #388bfd;
}
.profile-color-modes-illu-group {
    animation: profile-color-modes-illu-anim 0.2s cubic-bezier(0.72, 0.08, 1, 0.68) backwards;
}
.profile-color-modes-illu-frame {
    animation: profile-color-modes-illu-anim-frame-show 0s forwards, profile-color-modes-illu-anim-frame-hide 0s forwards;
}
.profile-color-modes-illu-frame:first-child {
    opacity: 1;
    animation: profile-color-modes-illu-anim-frame-hide 0s forwards;
}
.profile-color-modes-illu-frame:nth-child(8) {
    animation: profile-color-modes-illu-anim-frame-show 0s forwards;
}
.profile-color-modes-illu-red {
    animation-delay: 0.4s;
    animation-duration: 0.1s;
}
.profile-color-modes-illu-orange {
    animation-delay: 0.5s;
    animation-duration: 0.1s;
}
.profile-color-modes-illu-purple {
    animation-delay: 0.6s;
    animation-duration: 0.1s;
}
.profile-color-modes-illu-blue {
    animation-delay: 0.7s;
    animation-duration: 0.1s;
}
.profile-color-modes-illu-green {
    animation-delay: 0.8s;
    animation-duration: 0.2s;
    animation-timing-function: cubic-bezier(0.47, 2.92, 0.84, -1.5);
}
.profile-color-modes-illu-frame:first-child {
    animation-delay: 1.8s;
}
.profile-color-modes-illu-frame:nth-child(2) {
    animation-delay: 1.8s, 2.58s;
}
.profile-color-modes-illu-frame:nth-child(3) {
    animation-delay: 2.58s, 2.66s;
}
.profile-color-modes-illu-frame:nth-child(4) {
    animation-delay: 2.66s, 2.78s;
}
.profile-color-modes-illu-frame:nth-child(5) {
    animation-delay: 2.78s, 2.84s;
}
.profile-color-modes-illu-frame:nth-child(6) {
    animation-delay: 2.84s, 3.44s;
}
.profile-color-modes-illu-frame:nth-child(7) {
    animation-delay: 3.44s, 3.56s;
}
.profile-color-modes-illu-frame:nth-child(8) {
    animation-delay: 3.56s;
}
.profile-color-modes-illu-frame:nth-child(9),
.profile-color-modes-illu-frame:nth-child(10) {
    animation: none;
}

@keyframes wobble-bottom {
    16.65% {
        transform: skew(-12deg);
    }

    33.3% {
        transform: skew(10deg);
    }

    49.95% {
        transform: skew(-6deg);
    }

    66.6% {
        transform: skew(4deg);
    }

    83.25% {
        transform: skew(-2deg);
    }

    100% {
        transform: skew(0);
    }
}

@keyframes showComment {
    0% {
        opacity: 0;
        transform: scale(0.3);
    }
    50% {
        opacity: 1;
        transform: scale(1.05);
    }
    70% {
        transform: scale(0.9);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}
@keyframes box_shadow {
    0% {
        box-shadow: 0 0 0 0 #f56c6c;
    }
}
@keyframes progress {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 30px 0;
    }
}
@keyframes list_thumbnail_loading {
    0% {
        transform: scale(0.85);
    }
    100% {
        transform: scale(1);
    }
}
@keyframes list_title_loading {
    0% {
        width: 80%;
    }
    100% {
        width: 95%;
    }
}
@keyframes list_abstract_loading {
    0% {
        width: 60%;
    }
    100% {
        width: 80%;
    }
}
@keyframes profile-color-modes-illu-anim {
    0% {
        stroke: #666;
    }
}
@keyframes profile-color-modes-illu-anim-frame-show {
    0% {
        opacity: 0;
        animation-timing-function: ease-out;
    }
    to {
        opacity: 1;
    }
}
@keyframes profile-color-modes-illu-anim-frame-hide {
    0% {
        opacity: 1;
        animation-timing-function: ease-in;
    }
    to {
        opacity: 0;
    }
}

@keyframes shaked {
    2% {
        transform: translateY(1.5px) rotate(1.5deg);
    }
    4% {
        transform: translateY(-1.5px) rotate(-0.5deg);
    }
    6% {
        transform: translateY(1.5px) rotate(-1.5deg);
    }
    8% {
        transform: translateY(-1.5px) rotate(-1.5deg);
    }
    10% {
        transform: translateY(2.5px) rotate(1.5deg);
    }
    12% {
        transform: translateY(-0.5px) rotate(1.5deg);
    }
    14% {
        transform: translateY(-1.5px) rotate(1.5deg);
    }
    16% {
        transform: translateY(-0.5px) rotate(-1.5deg);
    }
    18% {
        transform: translateY(0.5px) rotate(-1.5deg);
    }
    20% {
        transform: translateY(-1.5px) rotate(2.5deg);
    }
    22% {
        transform: translateY(0.5px) rotate(-1.5deg);
    }
    24% {
        transform: translateY(1.5px) rotate(1.5deg);
    }
    26% {
        transform: translateY(0.5px) rotate(0.5deg);
    }
    28% {
        transform: translateY(0.5px) rotate(1.5deg);
    }
    30% {
        transform: translateY(-0.5px) rotate(2.5deg);
    }
    32%,
    34% {
        transform: translateY(1.5px) rotate(-0.5deg);
    }
    36% {
        transform: translateY(-1.5px) rotate(2.5deg);
    }
    38% {
        transform: translateY(1.5px) rotate(-1.5deg);
    }
    40% {
        transform: translateY(-0.5px) rotate(2.5deg);
    }
    42% {
        transform: translateY(2.5px) rotate(-1.5deg);
    }
    44% {
        transform: translateY(1.5px) rotate(0.5deg);
    }
    46% {
        transform: translateY(-1.5px) rotate(2.5deg);
    }
    48% {
        transform: translateY(-0.5px) rotate(0.5deg);
    }
    50% {
        transform: translateY(0.5px) rotate(0.5deg);
    }
    52% {
        transform: translateY(2.5px) rotate(2.5deg);
    }
    54% {
        transform: translateY(-1.5px) rotate(1.5deg);
    }
    56% {
        transform: translateY(2.5px) rotate(2.5deg);
    }
    58% {
        transform: translateY(0.5px) rotate(2.5deg);
    }
    60% {
        transform: translateY(2.5px) rotate(2.5deg);
    }
    62% {
        transform: translateY(-0.5px) rotate(2.5deg);
    }
    64% {
        transform: translateY(-0.5px) rotate(1.5deg);
    }
    66% {
        transform: translateY(1.5px) rotate(-0.5deg);
    }
    68% {
        transform: translateY(-1.5px) rotate(-0.5deg);
    }
    70% {
        transform: translateY(1.5px) rotate(0.5deg);
    }
    72% {
        transform: translateY(2.5px) rotate(1.5deg);
    }
    74% {
        transform: translateY(-0.5px) rotate(0.5deg);
    }
    76% {
        transform: translateY(-0.5px) rotate(2.5deg);
    }
    78% {
        transform: translateY(-0.5px) rotate(1.5deg);
    }
    80% {
        transform: translateY(1.5px) rotate(1.5deg);
    }
    82% {
        transform: translateY(-0.5px) rotate(0.5deg);
    }
    84% {
        transform: translateY(1.5px) rotate(2.5deg);
    }
    86% {
        transform: translateY(-1.5px) rotate(-1.5deg);
    }
    88% {
        transform: translateY(-0.5px) rotate(2.5deg);
    }
    90% {
        transform: translateY(2.5px) rotate(-0.5deg);
    }
    92% {
        transform: translateY(0.5px) rotate(-0.5deg);
    }
    94% {
        transform: translateY(2.5px) rotate(0.5deg);
    }
    96% {
        transform: translateY(-0.5px) rotate(1.5deg);
    }
    98% {
        transform: translateY(-1.5px) rotate(-0.5deg);
    }
    0%,
    100% {
        transform: translate(0px) rotate(0deg);
    }
}
